from enum import Enum, StrEnum

# 枚举基类
# class EnumBase(Enum):
#     @classmethod
#     def get_member_values(cls):
#         return [item.value for item in cls._member_map_.values()]

#     @classmethod
#     def get_member_names(cls):
#         return [name for name in cls._member_names_]

# 请求方法基类
class MethodType(StrEnum):
    GET = "GET"
    POST = "POST"
    PUT = "PUT"
    DELETE = "DELETE"
    PATCH = "PATCH"

class MenuType(StrEnum):
    CATALOG = "catalog"  # 目录
    MENU = "menu"  # 菜单

class StationType(str, Enum):
    """站点类型枚举，对应不同的子表"""
    NODE = "node"  # 节点
    CHARGING = "charging"  # 充电站
    INBOUND = "inbound"  # 入库站
    OUTBOUND = "outbound"  # 出库站
    SORTING = "sorting"  # 分拣站
    MAINTENANCE = "maintenance"  # 维修站
    UNKNOWN = "unknown"  # 其他

class OrderStatus(str, Enum):
    """订单状态枚举"""
    PENDING = "pending"  # 待处理
    PROCESSING = "processing"  # 处理中
    COMPLETED = "completed"  # 已完成
    CANCELLED = "cancelled"  # 已取消

class AGVStatus(str, Enum):
    """AGV运行状态枚举"""
    IDLE = "idle"  # 空闲
    RUNNING = "running"  # 运行中
    WAITING = "waiting"  # 等待中
    CHARGING = "charging"  # 充电中
    MAINTENANCE = "maintenance"  # 维修中
    UNKNOWN = "unknown"  # 未知状态